package com.carlinfo.shop.util;

import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.Callable;

import com.carlinfo.shop.common.util.ConstatFinalUtil;
import com.carlinfo.shop.goods.service.IGoodsSpiderService;

/**
 * 商品的多线程
 * 
 * 要做的事情有很多,得合理性的规划一下
 * @author wangshMac
 */
public class GoodsCallable implements Callable<Object>
{
	/* 操作的类型
	 * 抓取京东
	 * 发邮件
	 *  */
	private String operType ;
	/* 如何赋值;谁调用多线程,谁赋值 */
	private IGoodsSpiderService goodsSpiderService;
	/* 存储所有的参数 */
	private Map<String, Object> paramsMap = new HashMap<String,Object>();
	
	/**
	 * 相当于多线程中的run方法
	 */
	@Override
	public Object call() throws Exception
	{
		ConstatFinalUtil.LOGGER.info("==多线程开始==参数:{}",paramsMap);
		if("spiderJD".equalsIgnoreCase(operType))
		{
			/* 抓取京东 
			 * 参数从哪来
			 * */
			String cate = paramsMap.get("cate") + "";
			String ev = paramsMap.get("ev") + "";
			int cateId = Integer.valueOf(paramsMap.get("cateId") + "");
			int stPage = Integer.valueOf(paramsMap.get("stPage") + "");
			int edPage = Integer.valueOf(paramsMap.get("edPage") + "");
			this.goodsSpiderService.perTask(cate, ev ,cateId, stPage, edPage);
		}
		ConstatFinalUtil.LOGGER.info("==多线程结束==参数:{}",paramsMap);
		return null;
	}

	public void setOperType(String operType)
	{
		this.operType = operType;
	}

	public void setGoodsSpiderService(IGoodsSpiderService goodsSpiderService)
	{
		this.goodsSpiderService = goodsSpiderService;
	}

	public void setParamsMap(Map<String, Object> paramsMap)
	{
		this.paramsMap = paramsMap;
	}
}
